package com.tanhua.dubbo.api;

import com.tanhua.domain.mongo.Comment;
import com.tanhua.domain.vo.PageResult;

/**
 * @author
 * @date 2021/01/25
 */
public interface CommentApi {

    /**
     * 增加操作（点赞、评论、喜欢）
     *
     * @param comment Comment信息对象
     * @return 最新数量（点赞数、评论数、喜欢数）
     */
    long save(Comment comment);

    /**
     * 取消操作（取消点赞、取消评论、取消喜欢）
     *
     * @param comment Comment信息对象
     * @return 最新数量（点赞数、评论数、喜欢数）
     */
    long remove(Comment comment);

    /**
     * 分页查询某一动态的评论列表
     *
     * @param page       页码
     * @param pagesize   查询几条
     * @param movementId 动态id
     * @return publishId对应动态的评论
     */
    PageResult<Comment> findComment(String movementId, int page, int pagesize);

    /**
     * 对视频增加操作（点赞、评论、喜欢）
     *
     * @param comment Comment信息对象
     * @return 最新数量（点赞数、评论数、喜欢数）
     */
    long saveVideo(Comment comment);

    /**
     * 对视频取消操作（取消点赞、取消评论、取消喜欢）
     *
     * @param comment Comment信息对象
     * @return 最新数量（点赞数、评论数、喜欢数）
     */
    long removeVideo(Comment comment);

    /**
     * 分页查询针对某一用户的评论列表
     *
     * @param userId      用户id
     * @param commentType 评论类型
     * @param page        页码
     * @param pagesize    每页几条
     */
    PageResult<Comment> findCommentsByUser(Long userId, int commentType, int page, int pagesize);
}